所謂的 Event Delegation,又稱事件代理, 即是藉由事件傳遞減少監聽器數目, 是更優雅、乾淨、高效處理互動事件的一種方法。
DOM 中的事件有傳播 (event flow) 的概念,當 DOM 事件發生時,事件會先由外到內 (capturing phase)、再由內到外 (bubbling phase) 的順序來傳播。
事件傳遞分為兩部分
event.target.value
來接收真正的value$target.addEventListener(EVENT: string, CALLBACK: function, USECAPTURE: boolean)
USECAPTURE:預設為 false,表示事件在冒泡階段執行,設定為 true 則事件在捕獲階段執行。 當事件發生在
AT_TARGET
也就是目標身上時,事件不分冒泡捕獲,也就是 USECAPTURE 參數無效,先添加的程式先執行。
取消該 addEventListener 綁定的事件繼續傳遞
同時取消同一層級的所有事件傳遞